package com.yqw.onlineDocs.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 文档权限校验注解
 * 用于校验用户对文档的操作权限
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DocumentPermissionCheck {

    /**
     * 必须具有的文档权限
     * 可选值：document:read, document:write, documentUser:manage
     * 对应viewer, editor, admin角色
     */
    String permission() default "";

    /**
     * 文档ID参数名称
     * 默认为documentId，表示从请求参数中获取documentId
     */
    String documentIdParam() default "documentId";

    /**
     * 是否从请求体中获取文档ID
     * 如果为true，则从请求体中获取documentId
     * 如果为false，则从URL参数中获取documentId
     */
    boolean fromRequestBody() default true;
}